define(["app/utils/HttpClientUtils","qiniu"],function (HttpClientUtils) {
	
	
	
	function _init(browse_button,domain,beforeuploadFunc, uploadedFunc, errorFunc, progressFunc){
		var uploader = Qiniu.uploader({
		    runtimes: 'html5,html4',      // 上传模式,依次退化
		    browse_button: browse_button,         // 上传选择的点选按钮，**必需**
		    uptoken_url: $.wjtBaseBackend +'/qiniu/uploadtoken',         // Ajax 请求 uptoken 的 Url，**强烈建议设置**（服务端提供
		    get_new_uptoken: false,             // 设置上传文件的时候是否每次都重新获取新的 uptoken
		    unique_names: true,              // 默认 false，key 为文件名。若开启该选项，JS-SDK 会为每个文件自动生成key（文件名）
		    // save_key: true,                  // 默认 false。若在服务端生成 uptoken 的上传策略中指定了 `sava_key`，则开启，SDK在前端将不对key进行任何处理
		    domain: domain,     // bucket 域名，下载资源时用到，**必需**
		    //container: container,             // 上传区域 DOM ID，默认是 browser_button 的父元素，
		    max_file_size: '60MB',             // 最大文件体积限制
		    //flash_swf_url: '/wmeetings/js/libs/Moxie.swf',  //引入 flash,相对路径
		    max_retries: 3,                     // 上传失败最大重试次数
		    dragdrop: false,                     // 开启可拖曳上传
		    filters: {
				mime_types : [ //只允许上传图片
				    { title : "ppt files", extensions : "ppt,pptx,pdf" }, 
				],
	        },
		    drop_element: browse_button,          // 拖曳上传区域元素的 ID，拖曳文件或文件夹后可触发上传
		    chunk_size: '5MB',                  // 分块上传时，每块的体积
		    auto_start: true,                   // 选择文件后自动上传，若关闭需要自己绑定事件触发上传,
		    multi_selection: false,
		    
		    init: {
		        'FilesAdded': function(up, files) {
		            plupload.each(files, function(file) {
		                // 文件添加进队列后,处理相关的事情
		                // console.log(file);
		            });
		        },
		        'BeforeUpload': beforeuploadFunc,
//		        function(up, file) {
//		               // 每个文件上传前,处理相关的事情
//		        },
		        'UploadProgress': progressFunc,
				// function(up, file) {
		  //              // 每个文件上传时,处理相关的事情
		  //              console.log(up);
		  //              console.log(file);
		  //       },
		        'FileUploaded': function(up, file, info) {
		               // 每个文件上传成功后,处理相关的事情
		               // 其中 info 是文件上传成功后，服务端返回的json，形式如
		               // {
		               //    "hash": "Fh8xVqod2MQ1mocfI4S4KpRL6D98",
		               //    "key": "gogopher.jpg"
		               //  }
		               // 参考http://developer.qiniu.com/docs/v6/api/overview/up/response/simple-response.html
		               //info: {"hash":"Fk66OeXRpg3ndm0UGcwl52wQl4UZ","key":"o_1ah68mb2for41adg1k6v72fua.jpg"}
					uploadedFunc(JSON.parse(info));
		
		        },
		        'Error':errorFunc, 
//		        function(up, err, errTip) {
//		               //上传出错时,处理相关的事情
//					   //console.log(err);
//		        },
		        'UploadComplete': function() {
		               //队列文件处理完毕后,处理相关的事情
		               //console.log("complete...");
		        },
		        'Key': function(up, file) {
		            // 若想在前端对每个文件的key进行个性化处理，可以配置该函数
		            // 该配置必须要在 unique_names: false , save_key: false 时才生效
					//var file = $("#ppt").files[0];
					//var pos=file.lastIndexOf("\\");
		            var key = file.name;
		            // do something with key here
		            
		            // console.log(up);
		            // console.log(file);
		            return key
		        }
		    }
		});
		
    }
    
    return {
    	init: function(browse_button,domain,beforeuploadFunc,uploadedFunc, errorFunc, progressFunc){
    		_init(browse_button,domain,beforeuploadFunc, uploadedFunc, errorFunc, progressFunc);
    	}
    	
    };
});

